/**
 * _isstructs.h
 *
 *  Created on: Apr 9, 2009
 *      Author: Köntzä
 */

#ifndef _ISSTRUCTS_H_
#define _ISSTRUCTS_H_
#include "_ispackets.h"
namespace LFS
{
    typedef struct IS_TINY InSimTiny; // General purpose 4 byte packet
    typedef struct IS_SMALL InSimSmall; // General purpose 8 byte packet
    typedef struct IS_VER InSimVersion; // VERsion
    typedef struct IS_STA InSimState; // STAte
    typedef struct IS_SFP InSimStateFlagsPack; // State Flags Pack
    typedef struct IS_MOD InSimScreenMode; // MODe : send to LFS to change screen mode
    typedef struct IS_MSO InSimMessageOut; // MSg Out - system messages and user messages
    typedef struct IS_III InSimInfo; // InsIm Info - /i message from user to host's InSim
    typedef struct IS_MST InSimMessageType; // MSg Type - send to LFS to type message or command
    typedef struct IS_MSX InSimMessageExtended; // MSg eXtended - like MST but longer (not for commands)
    typedef struct IS_MSL InSimMessageLocal; // MSg Local - message to appear on local computer only
    typedef struct IS_MTC InSimMessageToConnection; // MSg To Connection - hosts only - send to a connection or a player
    typedef struct IS_SCH InSimSingleCharacter; // Single CHaracter - send to simulate single character
    typedef struct IS_ISM InSimMulti; // InSim Multi
    typedef struct IS_VTN InSimVoteNotify; // VoTe Notify
    typedef struct IS_RST InSimRaceStart; // Race STart
    typedef struct IS_NCN InSimNewConnection; // New ConN
    typedef struct IS_CNL InSimConnectionLeave; // ConN Leave
    typedef struct IS_CPR InSimConnectionPlayerRename; // Conn Player Rename
    typedef struct IS_NPL InSimNewPlayer; // New PLayer joining race (if PLID already exists, then leaving pits)
    typedef struct IS_PLP InSimPlayerInSettings; // PLayer Pits (go to settings - stays in player list)
    typedef struct IS_PLL InSimPlayerLeave; // PLayer Leave race (spectate - removed from player list)
    typedef struct IS_CRS InSimCarReset; // Car ReSet
    typedef struct IS_LAP InSimLapTime; // LAP time
    typedef struct IS_SPX InSimSplitTime; // SPlit X time
    typedef struct IS_PIT InSimPlayerPitted; // PIT stop (stop at pit garage)
    typedef struct IS_PSF InSimPlayerLeftPits; // Pit Stop Finished
    typedef struct IS_PLA InSimPlayerInPitLane; // Pit LAne
    typedef struct IS_CCH InSimCameraChange; // Camera CHange
    typedef struct IS_PEN InSimPenalty; // PENalty (given or cleared)
    typedef struct IS_TOC InSimTakeOverCar; // Take Over Car
    typedef struct IS_FLG InSimFlag; // FLaG (yellow or blue flag changed)
    typedef struct IS_PFL InSimPlayerFlags; // Player FLags (help flags changed)
    typedef struct IS_FIN InSimPlayerAtCheckeredFlag; // FINished race notification (not a final result - use IS_RES)
    typedef struct IS_RES InSimResult; // RESult (qualify or confirmed finish)
    typedef struct IS_REO InSimReorder; // REOrder (when race restarts after qualifying)
    typedef struct IS_AXI InSimAutoCrossInfo; // AutoX Info
    typedef struct IS_AXO InSimAutoCrossObject; // AutoX Object
    typedef struct NodeLap InSimNodeLap; // Car info in 6 bytes - there is an array of these in the NLP (below)
    typedef struct IS_NLP InSimNodeLapPacket; // Node and Lap Packet - variable size
    typedef struct CompCar InSimCarInfo; // Car info in 28 bytes - there is an array of these in the MCI (below)
    typedef struct IS_MCI InSimMultiCarInfo; // Multi Car Info - if more than 8 in race then more than one of these is sent
    typedef struct IS_SCC InSimSimplifiedCameraPacket; // Set Car Camera - Simplified camera packet (not SHIFT+U mode)
    typedef struct IS_CPP InSimFullCameraPacket; // Cam Pos Pack - Full camera packet (in car OR SHIFT+U mode)
    typedef struct IS_BFN InSimButtonFunction; // Button FunctioN - delete buttons / receive button requests
    typedef struct IS_BTN InSimButton; // BuTtoN - button header - followed by 0 to 240 characters
    typedef struct IS_BTC InSimButtonClick; // BuTton Click - sent back when user clicks a button
    typedef struct IS_BTT InSimButtonType; // BuTton Type - sent back when user types into a text entry button
    typedef struct OutSimPack InSimOutSimPack;
    typedef struct OutGaugePack InSimOutGaugePack;
}
#endif /* _ISSTRUCTS_H_ */
